Most modern businesses employ a multitude of different software applications which collect and store huge amounts of data. These applications store data in a multitude of different ways (e.g., a flat file, a relational database or an object database) and in a format specific to the application in question (e.g., a binary file format). Access to this data is achieved through a variety of differing mechanisms (e.g., a direct database query, various reporting tools, or via an application program interface (an “API”)), each offering differing levels of flexibility, ease of use and coherence to the business concepts underlying the data. This data is generally heterogeneous but also generally related in terms of the underlying business concepts which drive and populate the databases.
It is generally desirable for such a business to pull together all of this data and access it centrally, with data from different applications merging together to afford views which span the multiple and disparate applications and which further offer overall pictures relating to the underlying business concepts. Such an aggregation is difficult, however, as each data source may have its data stored in a unique, individual way on some form of persistent hardware which is not necessarily compatible with the ways and hardware of other data sources. Furthermore, the actual format of the data is usually very complex and not directly business-relevant, which exacerbates the difficulty in aggregating, or unifying, the data in the multiple data sources.
To attempt to alleviate these difficulties, it is desirable for each data source to offer some form of data access mechanism (e.g., a set of pre-built queries or a set of API's) to facilitate access to itself. These mechanisms offer access to sets or subsets of information which are more abstract and meaningful in a business sense than the raw data stored in each data source. For example, a pre-built query may query a data base to retrieve all information relating to a particular individual and return only information relevant to such an individual. While such data access mechanisms are beneficial for obtaining business-relevant information from a single database (or at least a single type of database), such data access mechanisms are specific to the application which relates to the database. The design and technical specifications for any particular data access mechanism generally differs significantly from that of another particular data access mechanism. As such, a data access mechanism for a particular database is not likely useable for a different database, let alone for each of the many disparate databases which make up the information store of a modern business. Such access mechanisms are not readily adaptable to facilitate views which span multiple databases and which further facilitate overall pictures relating to underlying business concepts.
The need exists, therefore, to provide a method and system for unifying data from a plurality of heterogeneous databases, each having business-context related data and a data access mechanism.